草庐IT

c++ - OpenCV C++ 多线程

全部标签

Java 线程终止引用

为什么不能通过将线程的引用设置为null并让垃圾收集器删除它来终止线程?它和其他对象一样,不是吗?示例:Threadt=newThread(newRunnable(){publicvoidrun(){//...}}).start;t=null; 最佳答案 It'sanobjectlikeanyother,isn'tit?不,不是。它代表一个非内存资源。您是否希望一个文件被删除,因为代表它的对象被垃圾回收了?事实上,当谈到垃圾回收时,Thread对象非常不“像任何其他”对象,因为线程本身就是可达性树,因此表示正在运行的线程的Threa

java - 使用后台线程与使用消息队列

我目前正在研究一系列警报,这些警报将检查来自外部网络服务的响应状态,并根据响应对象的状态(例如超时、无效数据等)发送警报。我希望主线程在评估响应和发送警报时继续工作。我有两个立即可用的选项:使用ActiveMQ并将对象作为objectMessage发送到队列进行处理。使用命令模式并线程化处理警报的异步命令。它们对我来说都是不错的选择,但我更倾向于线程命令,因为我不需要消息队列的大部分功能。问题:您将如何决定使用哪个?为什么? 最佳答案 两个字:保证交付。如果这对您很重要,那么消息队列就是您想要的。

java - 如何启动和管理Java线程?

下面的代码工作正常,但我想知道..从概念上讲,它是否正确?启动线程,等待它们加入。应该使用ThreadPool吗?如果可以,请评论Listthreads=newArrayList();for(Testtest:testsToBeExecuted){Threadt=newThread(test);threads.add(t);t.start();}for(Threadthread:threads){thread.join();} 最佳答案 概念上看起来不错。您可以使用您创建的ExecutorService:ExecutorServic

java - 如何加入使用执行程序服务启动的线程?

在main方法中,子线程开始使用java1.5执行程序服务机制。如何让主线程等待子线程完成?publicclassMainClass{publicstaticvoidmain(String[]args){ExecutorServiceexecutorService=null;try{executorService=Executors.newFixedThreadPool(1);executorService.execute(newTestThread());System.out.println("Mainprogramexited...");}catch(Exceptione){e.p

java - 如何通知 PipedInputStream 线程 PipedOutputStream 线程已写入最后一个字节?

如何正确完成管道输出端的工作?我需要写入线程终止或做一些其他工作,而读取线程读取所有写入数据直到结束。我应该在写入端关闭管道还是什么?更新1我想澄清一下......根据给定的答案,我认为设计管道行为不假设任何优雅终止是否正确?即一旦打开,停止管道的唯一方法就是打破管道?当read()方法返回-1时,传统流期望流信号结束。认为管道流永远不会发生这种情况是正确的吗? 最佳答案 是的,关闭PipedOutputStream会导致PipedInputStream出现-1。我觉得很优雅!这是我的SSCCE:importjava.io.*;im

java - Find out if the calling thread is the SWT UI thread - 确定调用线程

我有这个模块用于应用程序COMM的多个部分(在SWTUi端、后端等)。这个模块有一个sendMessage方法,我想在其中添加一个例程来确定调用线程(只是为了在UI中使用它)是SWTUI线程。并警告程序员,他正在尝试从UI线程执行耗时的操作……这很糟糕:)当然,我想通过不在UI模块(来自COMM)上添加任何依赖项来做到这一点。如何确定调用线程是否是SWTUI线程?谢谢,米尔恰 最佳答案 您可以调用Display.getThread()来获取应用程序的当前UI线程。如果您不想依赖SWTUI,那么您将不得不使用反射。例如:publics

单独的线程锁父级中的 Java JDBC 查询

我在理解这一点时遇到了一些困难。这是正在发生的事情。我正在生成一个新线程,该线程保持与Oracle数据库的JDBC连接。当我要求它连接到数据库时,父线程在调用start()方法时保持运行,但是当我要求子线程执行查询(在单独的方法上)时,父线程卡住等待子线程的完成其工作的方法。关于如何解决这个问题的任何猜测?提前致谢!publicclassMainextendsThread{publicMain(){}publicvoidmyCounter(){inti=0;DBConnectionmyConnection=null;for(;;){i++;System.out.println("tim

java - unmodifiableList 线程安全吗?

我有一个字符串列表(tagList)需要在多个线程之间共享以供读取,所以我创建了一个不可修改的版本并将其传递给线程,我不确定它是否线程安全,因为线程只读取该列表所以我想应该没问题吧?另外,当我将那个不可修改的列表传递给线程时,它是传递一个副本并由线程共享,还是创建多个副本并将一个副本传递给每个线程?这是我的代码:finalListtList=Collections.unmodifiableList(tagList);List>calls=newArrayList>();FileStatus[]fsta=_fileSystem.listStatus(p);for(FileStatusst

java - 如何用多线程扫描目录

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我有一个单线程的目录扫描程序。扫描文件时,我必须读取属性信息并将其插入数据库。我有两个问题。为了提高性能:如何使用多线程进行扫描?(扫描安卓手机的sd卡​​)如何优化批量插入数据库?下面是代码list:voidscan(){Filefile=newFile("/mnt/sdcard");fun(file);}voidfun(Filefile){if(!fi

java - 一个 CPU 上一次可以运行多少个线程

我想知道单个应用程序在一个CPU上可以同时运行多少个线程?我喜欢一个简单的:importjava.awt.SystemColor;importjava.util.Date;publicclassThreadcall{/***@paramargsthecommandlinearguments*/publicstaticvoidmain(String[]args){//TODOcodeapplicationlogichereSystem.out.println("--------------------------");System.out.println(Runtime.getRunti